<?xml version="1.0" encoding="UTF-8" ?>
<doc>
<title>前景的显示</title>

<para>
<ptitle>前景</ptitle>
　前景・・・总之就是，人物图像之类的，在背景层和消息层中间显示的东西。KAG 的默认设定中，前景层有 3 层。 ( 自己设定的话，还可以有更多层 )。<r/>
<r/>
　前景，为了显示出形状不规则的图像，必须使用遮罩或者透明色(colorkey)之类的方法。KAG 拥有使用遮罩和指定透明色两种画像显示方式。如果使用的是 PNG ， ERI 或者 TLG5/TLG6 一类本身就带alpha channel的图片格式，那么将以图片自带的透明通道信息为准。<r/>
</para>

<para>
<ptitle>使用透明色方式的前景</ptitle>
　透明色就是，把想要透明的部分统一涂上某种颜色，只要涂上这种颜色的部分，将不被显示出来——这样的东西。<r/>
　当图片为全彩色（full color）， 256 色或 16 色的情况，可能有少许的不同。<r/>
<r/>
　全彩色的情况，也就是把「用不到」的颜色「<kw>透明色</kw>」( colorkey ) ，填充图片上想要透明的部分。一般来说，经常使用的透明色是纯紫色 (r,g,b)=(255,0,255) 或者纯绿色 (r,g,b)=(0,255,0) 。<r/>
　但是这么做的话，不想透明的部分需要用到纯紫色或者纯绿色怎么办呢？那样的话，就使用(r,g,b)=(254,0,255) 或者 (r,g,b)=(0,254,0) 这样的颜色吧， KAG 会把这当做不透明的颜色看待的（虽然人眼是分辨不出来）。<r/>
<r/>
　256 色的图片，或者 16 色的图片，在<kw>调色盘</kw>里选择一种作为「透明色」。这个颜色填充的部分将被透明。<r/>
<r/>
<note>
　PNG 之类的图片格式，有些已经保存有<kw>透明色</kw>(colorkey)的信息了，带有半透明之类的柔化效果的 PNG 格式也是支持的。
</note>
<r/>
<descimg>
<dititle>透明色的范例</dititle>
<img src="ButtonGlyphImageList.png"/>
</descimg>
</para>

<para>
<ptitle>使用遮罩(mask)透明方式的前景</ptitle>
　KAG 中，可以使用和普通和前景图片不同，被叫做遮罩图片的东西，根据这种遮罩图片，可以把前景画像"剪"出一定的形状来。<r/>
<r/>
　<kw>遮罩图片</kw>是和其对应的前景图片同样大小的， 256 阶灰度(gray scale)的图片、这张图片中，亮度的等级对应着「不透明度」。也就是说，亮度为 0 的部分是「全透明」，而亮度 255 的部分是「全不透明」。128 左右的亮度代表「半透明」这样。把前景图片上想要显示出来的部分，在遮罩图片的相应位置涂白，想要透明的部分涂黑。<r/>
　遮罩图片请务必存储成 256 阶灰度(gray scale) ( 256 色图片 ) 。如果存成 全彩色 或 16色 将无法正常显示。<r/>
　遮罩图片是记录不透明度信息的图片，和该遮罩图片对应的前景图片则记录着颜色信息。这种情况下，把前景图片称呼为<kw>主图片</kw>。<r/>
<note>
　PNG或者ERI、TLG5/TLG6 形式的图片，单张 PNG/ERI/TLG5 图片，已经包含了 <kw>alpha channel</kw> ( 也就是遮罩信息 ) 了。<r/>
　使用能够输出这类型图片的软件 ( PNG 或 GIMP 等 )的话，就不用特别制作遮罩图片了。此外，吉里吉里 SDK 内附有图片格式转换器，可以很轻松地进行这些图片格式之间的转换。</note>
<r/>
　遮罩图片的命名，请在对应主图片的文件名之后加入 _m 。例如主图片名叫 hogehoge.png ，对应的遮罩图片则应该起名为 hogehoge_m.png 。这种遮罩图片和主图片分离的方法，被称为「主/遮罩分离形式」。（拖鞋译注：引擎 Nscripter 使用的则是「主/遮罩合并形式」吧……XD）<r/>
<r/>
　使用遮罩图片的好处在于，叠加前景的时候可以自由地指定任何一点的不透明度。处理恰当的遮罩图片和主图片将可以不留痕迹地融合进游戏画面中。<r/>
<descimg>
<dititle>遮罩范例 ( 左为主图片、右为遮罩图片 )</dititle>
<img src="ayari.png"/>
<img src="ayari_m.png"/>
</descimg>
</para>

<para>
<ptitle>前景的显示</ptitle>
　で那么，就像这样，准备好适当的图片吧 ( 图片请自行准备... )。首先，是指定透明色的显示方法・・・。<r/>
<bq>
[image storage="bg0" page=fore layer=base]<r/>
[wait time=200]<r/>
*start|スタート<r/>
[cm]<r/>
<b>[image layer=0 page=fore storage="as" visible=true key=0xff00ff left=340 top=100]</b><r/>
你好。<r/>
</bq>
　使用粗体的部分就是用于显示前景的指令。<kw>image</kw> 指令，在教程 <link href="DispBase"/> 已经出现过了。是用于载入图片的指令。layer 的值为 0 ，也就是指定图片在 0 号前景层上显示。<r/>
　
　这里，有一个 key 属性。key 属性是用来指定透明色的。像这种 0xRRGGBB 的形式，即 16 进制透明色指定，格式为RR(红) GG(绿) BB(蓝)，指定的颜色填充的地方将被透明。例如，key=0xff00ff 就是 (r,g,b)=(255,0,255) 也就是指定了纯紫色为透明色。如果，key=255 这么指定的话， 对应图片"调色板"上编号为 255 的颜色将成为透明色。详细说明请参考 <link href="Tags"/> 部分。<r/>
<r/>
　storage="as" 这样，就是读入一张名为 as 的图片。不写明扩展名也没关系。这种情况下, KAG 会自动搜索名为 as 的可用图片并载入。<r/>
<r/>
　visible=true 这么写是因为，KAG 的前景层在默认情况下是不显示的，不修改这个属性为 true 的话，即使载入图片也无法显示出来。<r/>
<r/>
　left=340 top=100 ，用于指定前景层的左端位置和上端位置。前景层的位置可以在 image 指令读入的时候设定（拖鞋译注：另外一个办法就是用 layopt 指令设定位置啦）。<r/>
<note>
　PNG 图片格式的情况，透明色指定无效。
</note>
<r/>
　此外，使用遮罩图片的情况下，变为以下写法。<r/>
<bq>
[image storage="bg0" page=fore layer=base]<r/>
[wait time=200]<r/>
*start|スタート<r/>
[cm]<r/>
<b>[image layer=0 page=fore storage="asm" visible=true left=340 top=100]</b><r/>
你好。<r/>
</bq>
　只是不需要加入 key 属性。<r/>
　这种情况，同时读入的将有以 asm_m 为名的遮罩图片，及以 asm 为名的主图片。<r/>
<r/>
　PNG ，自带有透明通道信息或透明色的情况下，和上一例一样，不需要 key 属性。<r/>
<descimg>
<dititle>执行结果</dititle>
<img src="LayerDisplayed.jpg"/>
</descimg>
</para>
</doc>
